// export default function compose(...funs) {
//   return function (args) {
//     for (let i = funs.length - 1; i >= 0; i--) {
//       args = funs[i](args);
//     }
//     return args;
//   };
// }

export default function compose(...funcs) {
  return funcs.reduce(
    (a, b) =>
      (...args) =>
        a(b(...args))
  );
}
